package com.extra_archive.framework.core.mvc.view 
{
	import com.extra_archive.framework.core.mvc.controller.IController;
	import com.extra_archive.framework.core.mvc.controller.IMouseController;
	import com.extra_archive.framework.core.mvc.model.IModel;

	import flash.events.MouseEvent;

	public class MouseInputView extends CompositeView {
		
		
		public function MouseInputView(model : IModel = null, controller : IController = null) {
			super(model, controller);
			registerListener();
		}
		
		
		//==================================================================
		////////////////////////////////    PROPERTY    ///////////////////////////////////////////////////
		//==================================================================
				 
				 
				 
				 
		//==================================================================
		////////////////////////////////    PUBLIC METHOD    ////////////////////////////////////////////
		//==================================================================
				
		public function registerListener() : void {
			_model.applicationContainer.stage.addEventListener(MouseEvent.MOUSE_DOWN, onMouseDownHandler,false,0,true);
			_model.applicationContainer.stage.addEventListener(MouseEvent.MOUSE_UP, onMouseUpHandler,false,0,true);
			_model.applicationContainer.stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMoveHandler,false,0,true);
		}		
				
				
		//==================================================================
		////////////////////////////////    EVENT LISTENER    ////////////////////////////////////////////
		//==================================================================
				
		public function onMouseDownHandler(event : MouseEvent) : void {
			IMouseController(_controller).mouseDownHandler();
		}

		public function onMouseUpHandler(event : MouseEvent) : void {
			IMouseController(_controller).mouseUpHandler();
		}
		
		public function onMouseMoveHandler(event:MouseEvent):void{
			IMouseController(_controller).mouseMoveHandler();
							
		}		
				
				
		//==================================================================
		////////////////////////////////    PRIVATE METHOD    ///////////////////////////////////////////
		//==================================================================
				
				
		
		
	}
}
